package priv.sort.selection;

import priv.sort.util.SortUtil;

// 选择排序
// 遍历数组，在数组中找到最小的元素放到数组的第一个位置
// 最大的元素也行
public class SelectionSort {
    public static void sort(int[] arr) {
        int len = arr.length;
        for (int i = 0; i < len; i++) {
            // 初始化最小元素下标为i
            int minIndex = i;
            for (int j = i + 1; j < len; j++) {
                // 找到比arr[i]更小的元素
                if(arr[j] < arr[minIndex]){
                    minIndex = j;
                }
            }
            // 如果不是i本身的话，交换他们
            if(minIndex!= i) {
                SortUtil.swap(arr, i, minIndex);
            }
        }
    }
}
